package com.zhuhjay.service.system.wxmp.handler;

import cn.hutool.core.util.StrUtil;
import com.zhuhjay.common.wxmp.builder.TextBuilder;
import com.zhuhjay.common.wxmp.handler.AbstractHandler;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.api.WxConsts;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;
import org.springframework.stereotype.Component;

import java.util.Map;

/**
 * @author ZhuHJay
 * @date 2023/8/2 19:47
 */
@Slf4j
@Component
public class LocationHandler extends AbstractHandler {

    @Override
    public WxMpXmlOutMessage handle(
            WxMpXmlMessage wxMessage, Map<String, Object> context, 
            WxMpService wxMpService, WxSessionManager sessionManager) {

        if (wxMessage.getMsgType().equals(WxConsts.XmlMsgType.LOCATION)) {
            String content = StrUtil.format(
                    "您发送的地理位置信息如下\n所在地 => {}\n纬度, 经度 => {}, {}\n精度 => {}",
                    wxMessage.getLabel(),
                    String.valueOf(wxMessage.getLocationX()),
                    String.valueOf(wxMessage.getLocationY()),
                    String.valueOf(wxMessage.getScale()));
            return new TextBuilder().build(content, wxMessage, null);
        }

        // 上报地理位置事件(公众号获取用户的地理位置权限)
        /*log.info("上报地理位置，纬度 : {}, 经度 : {}, 精度 : {}",
                String.valueOf(wxMessage.getLocationX()),
                String.valueOf(wxMessage.getLocationY()),
                String.valueOf(wxMessage.getScale())
        );*/
        //TODO  可以将用户地理位置信息保存到本地数据库，以便以后使用
        return null;
    }

}
